1. Field of the Invention
The present invention generally relates to data processing and more particularly to allowing a client having limited system resources to access a relatively large data model, residing on a server, as if the data model was resident on the client.
2. Description of the Related Art
Databases are computerized information storage and retrieval systems. A relational database management system is a computer database management system (DBMS) that uses relational techniques for storing and retrieving data. The most prevalent type of database is the relational database, a tabular database in which data is defined so that it can be reorganized and accessed in a number of different ways. A distributed database is one that can be dispersed or replicated among different points in a network. An object-oriented programming database is one that is congruent with the data defined in object classes and subclasses.
Regardless of the particular architecture, in a DBMS, a requesting entity (e.g., an application or the operating system) demands access to a specified database by issuing a database access request. Such requests may include, for instance, simple catalog lookup requests or transactions and combinations of transactions that operate to read, change and add specified records in the database. These requests are made using high-level query languages such as the Structured Query Language (SQL). Illustratively, SQL is used to make interactive queries for getting information from and updating a database such as International Business Machines' (IBM) DB2, Microsoft's SQL Server, and database products from Oracle, Sybase, and Computer Associates. The term “query” denominates a set of commands for retrieving data from a stored database. Queries take the form of a command language that lets programmers and programs select, insert, update, find out the location of data, and so forth.
Queries are constructed of query conditions that serve to filter results returned from the query. Accordingly, a query may be thought of as group of filters put together to sift out only the data in which they are interested. Query conditions are typically constructed by specifying conditional operations on one or more fields in the targeted database. To facilitate query building, some client applications may include a graphical user interface (GUI) that exposes these fields to a user in an organized manner (e.g., as a hierarchical data model with categories and subcategories of fields). A typical query building session may involve loading the data model from the server and exposing portions of the data model as the user navigates the hierarchical data model, via the GUI, to select fields to involve in a query.
As the relative size and complexity of the underlying database increases, the size of the data model and number of fields to expose to the user via the GUI will grow accordingly. Conventional client systems (e.g., desktop or laptop computers connected to the database server via a network) used to run the GUI typically have sufficient system memory to allow the larger data model to be loaded on the client. However, it may also be desirable to run the GUI on non-conventional client systems having limited system memory, such as handheld computing devices (e.g., personal digital assistants and the like). These devices may have insufficient system memory to allow the entire data model to be loaded. Further, these devices may also rely on wireless data connections to a network, which may have lower bandwidth than conventional “wired” network connections. Therefore, even if a device has sufficient memory, network latency may prevent the entire data model from being loaded on the device in an acceptable amount of time.
Accordingly, there is a need for an improved method for exposing, on a client device having limited resources, fields of a data model representing an underlying database.